回源主机名
什么是回源主机名
在 HTTP 协议中,Host 头是客户端(如浏览器或 CDN)发送给服务器的一个字段,用于标识客户端请求的目标域名。例如:
GET /index.html HTTP/1.1
Host: https://www.example.com # 主机头
源站服务器根据 Host 头判断客户端请求的是哪个域名,并返回对应的内容(尤其在多域名共享同一服务器 IP 的场景中)。
回源主机名的作用
确保源站正确解析请求
● 如果源站通过 Host 头区分不同网站(虚拟主机),错误的 Host 头会导致源站返回 404 或默认内容。
● 案例:
源站托管了 origin.example.com,但 CDN 回源时 Host 头为 cdn.example.com → 源站因无法识别域名而返回错误。
匹配SSL证书
● 若源站启用 HTTPS,SSL 证书必须与 Host 头中的域名匹配,否则会触发证书错误。
● 案例:
源站证书仅绑定 origin.example.com,但 CDN 回源 Host 头为 cdn.example.com → HTTPS 握手失败。
支持源站安全策略
●源站可能通过 Host 头过滤请求(如防火墙规则或白名单),错误的 Host 头会被拒绝。
●案例:
源站仅允许 Host 头为 origin.example.com 的请求 → CDN 未配置此值则回源失败。
适配特殊源站架构
●某些源站(如对象存储、API 网关)要求固定的 Host 头才能正确处理请求。
●案例:
部分OSS服务商要求回源 Host 头为存储桶域名(如 bucket.oss-cn-beijing.aliyuncs.com)。
LightCDN的回源主机名规则说明
CDN 回源时,对Host头的处理通常有三种模式:
跟随CDN速域名
● 行为:CDN 将用户请求的加速域名直接作为 Host 头发送给源站。
示例:
用户请求 cdn.example.com → CDN 回源时 Host 头仍为 cdn.example.com。
● 适用场景:
○ 源站已配置为接受加速域名(如反向代理或泛域名证书)。
○ 源站与加速域名一致(例如源站直接托管业务)。
○ 源站需要验证Host头的合法性(如防盗链)。防盗链要求Host头确保与合法域名一致。
跟随源站
● 行为:CDN 回源时强制修改 Host 头为指定的源站域名或源站IP。
示例:
用户请求 cdn.example.com → CDN 回源时 Host 头改为 origin.example.com。
● 适用场景:
○ 源站为IP地址,无虚拟主机,直接响应请求。源站此时无校验逻辑,返回源IP更为简单。此情况也适用跟随加速域名。
○ 源站为域名,虚拟主机,需要根据Host头路由到不同站点或服务(如多租户架构)。
自定义回源主机名
● 行为:LightCDN 回源时强制修改 Host 头为指定的URL地址。
示例:
用户请求 cdn.example.com → CDN 回源时 Host 头改为 bucket.oss-cn-beijing.aliyuncs.com(实际这个是设定的回源地址)。
● 适用场景:
○ 源站通过域名区分服务(如多租户架构)。此情况也适用于跟随源站。
○ 加速域名与源站域名不一致(例如源站是第三方服务或对象存储),依赖Host头识别存储桶或服务。OSS服务商要求Host头必须为存储桶域名,Host头需要是与源站绑定的域名。
配置建议
单源站:若源站启用HTTPS,需确保回源Host与证书域名一致。若源站和加速域名为同域名,可配置为跟随加速域名;若不一致,跟随源站或自定义。
多源站:多源优先考虑配置为跟随加速域名。为每个源站单独配置对应的 Host 头,若回源至多个IP(如负载均衡),需确保所有源站接受相同的回源Host,或通过规则引擎为不同IP指定独立Host。此操作不在LightCDN上进行。
在LightCDN上如何配置回源主机名
可以前往 规则集 → 源规则,选择回源主机名。
验证方法
抓包测试
curl -v -H "Host: cdn.example.com" http://源站IP
查看源站日志
查源站收到的请求中 Host 头是否符合预期。
总结
CDN 的主机头转发是连接 CDN 与源站的“桥梁”,直接影响回源请求能否被正确处理。合理配置 Host 头可避免 404 错误、证书校验失败等问题,是 CDN 加速稳定性的关键因素之一。